package com.example.base_model.sp.management_keys

import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.stringPreferencesKey

/**
 * @Author jiangKunKun
 * @CreateDate 2025/8/6
 * @Description 定义应用中用于 DataStore 存储对象的主键。
 *              每个枚举实例代表一个可序列化对象的存储键。
 * @SpittingGrooves
 */
enum class AppPreferenceKey(val rawValue: String) {
    /**
     * 用于存储序列化后的 UserInfo 对象
     */
    USER_INFO("user_info_object"),

    /**
     * 用于存储序列化后的 DeviceInfo 对象
     */
    DEVICE_INFO("device_info_object"),

    /**
     * 示例：用于存储 AppSettings 对象
     */
    APP_SETTINGS("app_settings_object");

    /**
     * 获取此对象对应的 Preferences.Key<String>，因为我们将对象序列化为 JSON 字符串。
     */
    fun stringKey(): Preferences.Key<String> {
        return stringPreferencesKey(this.rawValue)
    }
}